// 1. 布尔值
// boolean代表的是基本数据类型布尔值. Boolean代表的是布尔值的包装对象类型. Boolean是boolean的父类型
// 注意: ts中.子类型可以赋值给父类型. 父类型不能赋值给子类型
// 字符串和数字和他们包装对象类型的关系和布尔值是一样的
// const bol1: boolean = false

// 子类型赋值给父类型(没错)
const bol2: Boolean = true
// 父类型赋值给子类型(错了)
// const bol3: boolean = new Boolean(1)
const bol4: boolean = Boolean(1) // 注意: Boolean(1) 是强制类型转换.转完之后得到的结果就是基本数据类型布尔值

// 2. 字符串

// const str1: string = '123'
// const str2: string = '123'
// const str3: string = `123`

// 3. 数字
let decLiteral: number = 6
//  十六进制表示法
let hexLiteral: number = 0xf00d
// 二进制表示法
let binaryLiteral: number = 0b1010
// 八进制表示法
let octalLiteral: number = 0o744
let notANumber: number = NaN
let infinityNumber: number = Infinity

// 4.void 空值
// 函数的小括号后面写`:类型`. 是在描述函数的返回值
// 空值主要用来描述函数的返回值
function fn(): void {
  console.log(123)
}

// 5. undefined和null
// undefined和null是ts中所有类型的子类型
const n1: undefined = undefined
const n2: null = null
const n3: null = undefined
const n4: undefined = null
const n5: string = null
const n6: number = undefined
const n7: void = undefined
